\chapter{Présentation et étude préliminaire du projet}

\emph{Cette phase est la première de l'analyse. Elle consiste à découvrir le
projet et à discuter sur les acteurs, les objectifs, les différentes fonctions du système,
les contraintes et parfois même sur l'implantation finale.}

Le tout premier travail consiste à prendre connaissance des besoins
exprimés. Ceux-ci ont été transmis au cours de la 2\ieme séance de TP. Ces
besoins sont encore très flous et incomplets mais représentent la base du
projet. Avant de modéliser quoi que ce soit il sera nécessaire de définir
clairement les objectifs et les limites du système. Pour cela nous réaliserons
des interview des futurs utilisateurs et nous ferons preuve de bon sens afin
d'aboutir à un cahier des charges.

\section{Interview de l'administrateur}

Une des première démarche que nous avons faite pour nous imprégner du projet a
consisté en l'interview de l'expert métier. Celui-ci est la personne s'occupant
de l'emploi du temps pour le département Sciences et Techniques de l'USTV.
Voici la retranscription de cette interview :

\subsection{Questions sur le système courrant}

\begin{description}
\item[Nous] : Quel est votre travail sur l'emploi du temps ?
\item[Expert métier] : Je m'occupe de l'édition de l'emploi du temps pour le
département Sciences et Techniques. C'est moi qui programme les cours des
différentes formations du département.
\item[Nous] : Comment se passe l'arrangement des horaires ? Qui décide de
l'heure à laquelle un cours a lieu ?
\item[Expert métier] : Pour prendre votre formation en exemple, c'est votre
responsable qui édite votre emploi du temps sur \emph{Google
Calendar}\footnote{\emph{Google Calendar} est une application \emph{Google}
permettant de gérer un agenda et de publier des évènements.} et qui me
l'envoie. Ensuite je le retranscris sur l'emploi du temps de l'Université.
\item[Nous] : Et comment cela se passe lorsqu'un enseignant est absent ou qu'il
veut déplacer un cours ou changer de salle ?
\item[Expert métier] : Pour cette partie rien n'est automatisé. Ils m'envoient
un mail et moi je vois si le déplacement ou le changement de salle est possible.
Si il y a un problème nous le résolvons par email.
\item[Nous] : Le système gère-t-il les conflits ? Par exemple si l'on essaie de
mettre deux cours au même moment dans une même salle ou avec un même enseignant
?
\item[Expert métier] : Oui le système gère ce genre de conflits.
\item[Nous] : Comment se passe concrètement la programmation d'un cours ?
\item[Expert métier] : Il faut se placer sur l'emploi du temps, et cliquer sur
un horaire qui est libre. De là on sélectionne le cours, l'enseignant, si c'est
un cours magistral, un TD, un TP etc. puis sélectionner la salle. 
\item[Nous] : Et pour la modification d'un horaire ?
\item[Expert métier] : Il suffit de faire glisser le cours précédemment créé.
\item[Nous] : Est-ce vous qui gérez le nom des cours, les enseignants, les
salles de cours etc. ?
\item[Expert métier] : Oui, je peux rajouter un cours, un enseignant, lui
affecter un status (Doctorant, Maître de conférence, Professeur\ldots).
\end{description}

\subsection{Questions pour l'amélioration du système}

\begin{description}
\item[Nous] : Globalement, êtes vous satisfait de ce système ?
\item[Expert métier] : Oui, le système me convient mais il y aurait des points à
améliorer et parfois je suis obligé de bricoler pour obtenir la réalisation de
mes objectifs.
\item[Nous] : Pouvez-vous nous donner un exemple ?
\item[Expert métier] : On ne peut pas affecter un cours à plusieurs
promotions. Par exemple, l'examen d'Anglais des 3\ieme années de Licence est
commun aux fillières Info., Math. et Bio. Je suis obligé de mettre deux
fillières en commentaires et de recopier les mêmes informations sur l'emplois du
temps de chacune de ces trois fillières.
\item[Nous] : Y-a-t-il d'autres choses qui vous gênent ou des fonctionnalités
que vous aimeriez voir apparaître ?
\item[Expert métier] : A part le point précédent, le système me convient. Il
manque peut-être un peu de rapidité.
\end{description}


\section{Interview des utilisateurs}

Les utilisateurs de ce système sont principalement les étudiants et les
enseignants. Que pensent-il du système ? Nous avons recueilli les avis de
plusieurs utilisateurs voici les principaux points retenus :

\begin{description}
\item[L'accès mobile] : Probablement le point noir du système : il est
impossible d'accéder à l'emploi du temps depuis son smartphone. Le système
n'est accessible qu'à partir d'un ordinateur. 
\item[L'authentification] : Il est indispensable de s'authentifier pour accéder
à son emploi du temps. Pourquoi ne pas avoir simplement un accès restreint
permettant simplement d'accéder à l'emploi du temps d'une promotion ?
\item[Bugues de navigation] : Sur firefox on ne peut pas faire défiler la
liste des promotions en faisant glisser la barre de défilement ; on est obligé
d'utiliser la molette de la souris. 
\end{description}


\section{Un premier bilan}

Le système actuel comporte beaucoup de points positifs qu'il sera necessaire de
concerver dans notre version. Néanmoins il y a des parties qui sont à améliorer,
comme celle traitant de la connexion à partir d'un smartphone. Cette première
analyse nous permet de dévoiler les points suivants : 

\begin{itemize}
  \item L'application doit gérer un nombre très important d'acteurs. Ce nombre
  peut même ne pas être clairement défini. \textbf{Les acteurs doivent donc être
  regroupés en fonction de leur similarités} ;
  \item Les acteurs ont différents niveaux d'utilisation du système
  (visualisateur, enseignant, administrateur\ldots). \textbf{Il est donc
  indispensable de définir des droits d'utilisations} ;
  \item Le système doit être sécurisé ;
  \item L'emploi du temps doit être pensé pour être accessible depuis un
  smartphone.
  \item L'application doit être multi utilisateurs et accéssible depuis le
  réseau. \textbf{Cela induit naturellement l'utilisation d'une base de données}
\end{itemize}

\section{Maquette}

À présent que les idées sont assez claires, il peut être intéressant de réaliser
une maquette de l'application afin d'avoir un premier aperçu de celle-ci.
Cette maquette a été réalisée à l'aide de l'éditeur \emph{NetBeans}.\\
\emph{Remarque : Nous ne présentons qu'une partie de cette maquette}. 

\begin{figure}[!ht]
\includegraphics[scale=0.5, angle=90]{img/maquette.eps}
\caption{Maquette de l'application}
\end{figure}


%\subsection{Les technologies répondant au mieux aux besoins}

%\textbf{TODO: à mettre dans la partie implantation}

% Quelques idées en vrac :
%\begin{itemize}
%  \item Utilisation de la persistance avec \emph{JPA}
%%%  \item Délégation de la gestion des utilisateurs au SGBD
%  \item Réutilisation de certaines parties du projet de INF2 (Utilisateurs,
%  étudiants, enseignants\ldots)
%  \item Utilisation du modèle \emph{MVC}, notamment pour gérer plusieurs vues :
%  \item \begin{itemize}
%%    \item Vue avec une application Swing
%    \item Vue Web (JEE --- servlets --- jsp --- jfs\ldots)
%    \item Vue sur smartphone
%  \end{itemize}
%  \item \textbf{MODULARITE} du code. Ne pas hésiter à utiliser des classes
%  utilitaires, à généraliser les \emph{concepts} importants.
%  \item \textbf{REUTILISABILITE} : Pas de code en dur. Si des éléments
%  doivent-être nommés, cela se fera par le biais d'un fichier de configuration
%  (XML)
%  \item \textbf{SÛRETE} : Importance capitale des tests unitaires (avec JUnit)
%  \item Traçabilité : Pour la phase de tests et pour les éléments à sauvegarder
%  (connexion, modification de la BDD), utiliser les logs (jdk ou log4j)
%  \item Travail collaboratif avec SVN (Trac ?)
%\end{itemize}
%~\\
%Chacun de ces points sera repris avec précision dans l'étude détaillée.

